common.skill

এপিআই তৈরি করা (Creating APIs)

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC)
202
202

ASP.Net MVC-তে Web API ব্যবহার করে এপিআই (Application Programming Interface) তৈরি করা যায়, যা বিভিন্ন ক্লায়েন্ট অ্যাপ্লিকেশন (মোবাইল, ওয়েব, ডেস্কটপ) এবং সার্ভিসগুলোর মধ্যে ডেটা আদান-প্রদানের মাধ্যম হিসেবে কাজ করে। RESTful API সাধারণত HTTP প্রোটোকলের উপর ভিত্তি করে তৈরি হয় এবং JSON বা XML ফরম্যাটে ডেটা প্রদান করে।


এপিআই কী এবং কেন প্রয়োজন

এপিআই কী?

এপিআই একটি ইন্টারফেস যা অ্যাপ্লিকেশনের বিভিন্ন ফাংশন এবং ডেটা এক্সেস করার সুযোগ দেয়। এটি ক্লায়েন্ট এবং সার্ভার অ্যাপ্লিকেশনগুলোর মধ্যে যোগাযোগের জন্য একটি মধ্যস্থতাকারী হিসেবে কাজ করে।

এপিআই কেন প্রয়োজন?

  • ডেটা শেয়ারিং সহজ করে।
  • মোবাইল এবং ওয়েব অ্যাপ্লিকেশনের জন্য ব্যাকএন্ড প্রদান করে।
  • বহুমুখী প্ল্যাটফর্মে সমর্থন নিশ্চিত করে।
  • সার্ভিস ও অ্যাপ্লিকেশন ইন্টিগ্রেশনকে আরও কার্যকর করে।

ASP.Net Web API পরিচিতি

ASP.Net Web API একটি ফ্রেমওয়ার্ক, যা RESTful সার্ভিস তৈরি করার জন্য ব্যবহৃত হয়। এটি ASP.Net MVC আর্কিটেকচারের উপর ভিত্তি করে তৈরি এবং সহজেই JSON বা XML রেসপন্স প্রদান করতে পারে।


এপিআই তৈরির ধাপসমূহ

একটি Web API প্রজেক্ট তৈরি করা

Visual Studio ব্যবহার করে নতুন Web API প্রজেক্ট তৈরি করতে পারেন:

  1. Visual Studio খুলুন।
  2. Create a new project অপশনে যান।
  3. ASP.Net Web Application নির্বাচন করুন।
  4. Web API টেমপ্লেট নির্বাচন করুন।

একটি এপিআই কন্ট্রোলার তৈরি করা

এপিআই কন্ট্রোলার তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন:

  1. Controllers ফোল্ডারে একটি নতুন ক্লাস তৈরি করুন।
  2. ক্লাসটি ApiController ক্লাস থেকে ইনহেরিট করুন।
public class StudentController : ApiController
{
    [HttpGet]
    public IEnumerable<Student> GetAllStudents()
    {
        return new List<Student>
        {
            new Student { Id = 1, Name = "Rahim", Class = "10" },
            new Student { Id = 2, Name = "Karim", Class = "9" }
        };
    }
}

রাউটিং কনফিগার করা

Web API-তে ডিফল্ট রাউটিং WebApiConfig ফাইলের মাধ্যমে নির্ধারণ করা হয়।

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

এপিআই অ্যাকশন মেথড যোগ করা

এপিআই অ্যাকশন মেথড HTTP রিকোয়েস্ট অনুযায়ী কাজ করে (GET, POST, PUT, DELETE)।

[HttpPost]
public IHttpActionResult AddStudent(Student student)
{
    if (ModelState.IsValid)
    {
        // ডাটাবেসে সংরক্ষণ
        return Ok(student);
    }
    return BadRequest("Invalid data.");
}

RESTful API ডিজাইনের মূলনীতি

HTTP মেথডস ব্যবহার

  • GET: ডেটা রিট্রাইভ করার জন্য।
  • POST: নতুন ডেটা যোগ করার জন্য।
  • PUT: ডেটা আপডেট করার জন্য।
  • DELETE: ডেটা মুছে ফেলার জন্য।

রিসোর্স ভিত্তিক URL

API URL-কে রিসোর্স ভিত্তিক হতে হবে, যেমন:

GET /api/students       // সকল ছাত্রের তালিকা
GET /api/students/1     // নির্দিষ্ট ছাত্রের তথ্য
POST /api/students      // নতুন ছাত্র যোগ করা
PUT /api/students/1     // ছাত্রের তথ্য আপডেট করা
DELETE /api/students/1  // ছাত্রের তথ্য মুছে ফেলা

JSON এবং XML সাপোর্ট

ASP.Net Web API স্বয়ংক্রিয়ভাবে JSON এবং XML রেসপন্স প্রদান করতে পারে। ক্লায়েন্টের প্রয়োজন অনুযায়ী এটি নির্ধারণ করা হয়।


এপিআই নিরাপত্তা (API Security)

Authentication এবং Authorization

  • Token-based Authentication: JSON Web Token (JWT) ব্যবহার করা হয় ক্লায়েন্টকে প্রমাণীকরণের জন্য।
  • OAuth এবং OpenID: ক্লায়েন্ট অ্যাপ্লিকেশনের জন্য নিরাপদ প্রমাণীকরণ।

ডেটা এনক্রিপশন

HTTPS ব্যবহার করে ডেটা এনক্রিপ্ট করা উচিত, যাতে ডেটা আদান-প্রদানের সময় সুরক্ষিত থাকে।

CORS সাপোর্ট

Cross-Origin Resource Sharing (CORS) কনফিগার করে বিভিন্ন ডোমেইন থেকে API অ্যাক্সেস করার অনুমতি দিতে পারেন।


এপিআই টেস্টিং এবং ডকুমেন্টেশন

Postman ব্যবহার

API টেস্টিংয়ের জন্য Postman একটি জনপ্রিয় টুল। এটি সহজেই API রিকোয়েস্ট পাঠাতে এবং রেসপন্স দেখতে সাহায্য করে।

Swagger দিয়ে ডকুমেন্টেশন

Swagger ব্যবহার করে এপিআই-এর জন্য স্বয়ংক্রিয় ডকুমেন্টেশন তৈরি করা যায়। এটি এপিআই-এর এন্ডপয়েন্ট এবং তাদের কার্যকারিতা সম্পর্কে বিস্তারিত তথ্য প্রদান করে।


সারমর্ম

ASP.Net Web API ব্যবহার করে RESTful এপিআই তৈরি করা ডেভেলপারদের জন্য সহজ এবং কার্যকর। এটি বিভিন্ন ক্লায়েন্ট অ্যাপ্লিকেশনের মধ্যে ডেটা আদান-প্রদান সহজ করে তোলে। HTTP প্রোটোকল, JSON/ XML ফরম্যাট এবং নিরাপত্তা বৈশিষ্ট্য ব্যবহার করে একটি সুরক্ষিত এবং দক্ষ API তৈরি করা যায়।

common.content_added_by

ASP.Net MVC এবং Web API পরিচিতি

211
211

ASP.Net MVC এবং Web API দুটি আলাদা ফ্রেমওয়ার্ক যা ASP.Net প্ল্যাটফর্মে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। যদিও এরা একই প্ল্যাটফর্মে কাজ করে, তাদের উদ্দেশ্য এবং ব্যবহারের ক্ষেত্র আলাদা। ASP.Net MVC মূলত ওয়েব পেজ তৈরি করার জন্য ব্যবহৃত হয়, যেখানে Web API RESTful সেবা তৈরি করতে ব্যবহৃত হয়। নিচে ASP.Net MVC এবং Web API এর পরিচিতি এবং পার্থক্য বিস্তারিতভাবে আলোচনা করা হলো।


ASP.Net MVC পরিচিতি

ASP.Net MVC (Model-View-Controller) হল একটি ফ্রেমওয়ার্ক যা ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহার করা হয়। এটি একটি ক্ল্যাসিক ডিজাইন প্যাটার্ন অনুসরণ করে, যেখানে অ্যাপ্লিকেশনের কার্যক্রম তিনটি ভাগে বিভক্ত করা হয়: Model, View, এবং Controller

ASP.Net MVC এর বৈশিষ্ট্য:

  • Model (মডেল): অ্যাপ্লিকেশনের ডেটা এবং ব্যবসায়িক লজিক সংরক্ষণ করে।
  • View (ভিউ): ইউজার ইন্টারফেস (UI) তৈরি করে এবং ডেটা প্রদর্শন করে।
  • Controller (কন্ট্রোলার): ব্যবহারকারীর ইনপুট প্রক্রিয়া করে, মডেল থেকে ডেটা গ্রহণ করে এবং ভিউতে রেন্ডার করে।

ASP.Net MVC ফ্রেমওয়ার্কটি URL Routing, Action Methods, Model Binding, এবং Razor View Engine-এর মতো ফিচার সরবরাহ করে। এটি ডেভেলপারদের SEO-বান্ধব, রেসপন্সিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।

ASP.Net MVC-তে ব্যবহৃত কিছু গুরুত্বপূর্ণ কনসেপ্ট:

  • Action Methods: কন্ট্রোলারের মধ্যে নির্দিষ্ট মেথড যা ব্যবহারকারীর রিকোয়েস্ট হ্যান্ডল করে।
  • Routing: URL প্যাটার্নের মাধ্যমে নির্দিষ্ট কন্ট্রোলার এবং অ্যাকশন মেথডে রিকোয়েস্ট প্রেরণ করা।
  • View Rendering: Razor Syntax ব্যবহার করে ডাইনামিক HTML তৈরি করা।

ASP.Net MVC ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে উন্নত পারফরম্যান্স, সঠিক আর্কিটেকচার এবং ফ্লেক্সিবিলিটি প্রদান করে।


Web API পরিচিতি

Web API (Application Programming Interface) হল একটি সফটওয়্যার ইন্টারফেস যা বিভিন্ন সিস্টেম এবং অ্যাপ্লিকেশনগুলির মধ্যে ডেটা বা ফাংশনালিটি শেয়ার করার জন্য ব্যবহৃত হয়। ASP.Net Web API RESTful (Representational State Transfer) সার্ভিস তৈরি করার জন্য ব্যবহৃত হয়, যা HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ স্থাপন করে।

Web API এর বৈশিষ্ট্য:

  • RESTful Design: Web API সাধারণত RESTful স্টাইল অনুসরণ করে, যা HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে রিসোর্স পরিচালনা করে।
  • JSON বা XML ফরম্যাটে ডেটা রিটার্ন: Web API সাধারণত JSON বা XML ফরম্যাটে ডেটা পাঠায়, যা সহজে JavaScript বা অন্যান্য ক্লায়েন্ট সাইড টুল দ্বারা প্রক্রিয়া করা যায়।
  • Stateless Communication: Web API তে প্রতিটি রিকোয়েস্ট আলাদাভাবে প্রসেস করা হয়, এবং সার্ভার সেশন বা স্টেট সংরক্ষণ করে না।
  • Lightweight and Scalable: Web API ছোট এবং দ্রুত, যা মোবাইল অ্যাপ্লিকেশন, ক্লায়েন্ট-সাইড ফ্রেমওয়ার্ক এবং বিভিন্ন সিস্টেমের মধ্যে ডেটা আদান-প্রদান সহজ করে।

Web API-তে ব্যবহৃত কিছু গুরুত্বপূর্ণ কনসেপ্ট:

  • HTTP Methods: Web API সাধারণত GET, POST, PUT, DELETE মেথড ব্যবহার করে ডেটা আদান-প্রদান করে।
  • Routing: Web API URL রাউটিং ব্যবহার করে রিকোয়েস্টের সাথে মিলিত কন্ট্রোলার অ্যাকশন নির্বাচন করা।
  • Model Binding: API রিকোয়েস্ট থেকে ডেটা মডেল অ্যাট্রিবিউটসের মাধ্যমে অ্যাসাইন করা।

Web API মূলত সিস্টেম এবং অ্যাপ্লিকেশনের মধ্যে ডেটা শেয়ার করার জন্য ডিজাইন করা হয়েছে এবং এটি মোবাইল অ্যাপ্লিকেশন, AJAX কল এবং ক্লায়েন্ট-সাইড টেকনোলজির জন্য অত্যন্ত উপযোগী।


ASP.Net MVC এবং Web API এর মধ্যে পার্থক্য

বৈশিষ্ট্যASP.Net MVCWeb API
উদ্দেশ্যওয়েব পেজ তৈরি এবং UI ডিজাইনডেটা আদান-প্রদান এবং RESTful সেবা তৈরি
ফরম্যাটHTML, CSS, JavaScript, Razor ViewsJSON, XML, অথবা অন্যান্য ফরম্যাট
URL Routingব্যবহারকারীকে HTML পেজে রিডাইরেক্ট করেHTTP মেথড (GET, POST, PUT, DELETE)
Response TypeHTML রেন্ডার করাJSON/XML ডেটা
স্টেটস্টেটফুল (ViewState এবং কন্ট্রোলের সাথে)Stateless
রিকোয়েস্ট টাইপসাধারণত GET এবং POSTGET, POST, PUT, DELETE
ডেভেলপমেন্টে ব্যবহৃতওয়েব পেজ এবং অ্যাপ্লিকেশন UIAPI সার্ভিস, মোবাইল অ্যাপ্লিকেশন, AJAX
ডিজাইন প্যাটার্নModel-View-Controller (MVC)RESTful Design

সারমর্ম

ASP.Net MVC এবং Web API দুটি আলাদা ফ্রেমওয়ার্ক যা আলাদা ধরনের অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। ASP.Net MVC সাধারণত ওয়েব পেজ এবং UI তৈরি করতে ব্যবহৃত হয়, যেখানে Web API RESTful সার্ভিস তৈরি করতে ব্যবহৃত হয়, যা ক্লায়েন্ট সাইড অ্যাপ্লিকেশন এবং অন্যান্য সার্ভিসের মধ্যে ডেটা আদান-প্রদান করে। যখন একটি প্রজেক্টে ইউজার ইন্টারফেস এবং সার্ভিস বেসড আর্কিটেকচার প্রয়োজন, তখন ASP.Net MVC ব্যবহার করা হয়, আর API-ভিত্তিক যোগাযোগ এবং ডেটা শেয়ার করার জন্য Web API ব্যবহার করা হয়।

common.content_added_by

RESTful API ডিজাইন

197
197

RESTful API (Representational State Transfer) হলো এমন একটি আর্কিটেকচারাল স্টাইল, যা ওয়েব সার্ভিস ডিজাইন এবং ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এটি HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ করে। RESTful API-এর ডিজাইন সহজ, স্কেলযোগ্য এবং স্ট্যান্ডার্ডাইজড হওয়ায় এটি আধুনিক ওয়েব এবং মোবাইল অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যাপক জনপ্রিয়।


RESTful API এর মূল উপাদান

রিসোর্স (Resource)

REST আর্কিটেকচারে রিসোর্স হলো ডেটা বা সার্ভিসের একটি ইউনিট। প্রতিটি রিসোর্স একটি URI (Uniform Resource Identifier)-এর মাধ্যমে সনাক্ত করা হয়। উদাহরণস্বরূপ, /students রিসোর্সটি সমস্ত শিক্ষার্থীর তথ্য সনাক্ত করতে পারে।

HTTP মেথড

HTTP মেথড ব্যবহার করে রিসোর্সের ওপর বিভিন্ন কার্যক্রম পরিচালনা করা হয়। সাধারণত নিম্নলিখিত মেথডগুলো RESTful API-তে ব্যবহৃত হয়:

  • GET: রিসোর্স রিড বা রিট্রাইভ করতে ব্যবহৃত।
  • POST: নতুন রিসোর্স তৈরি করতে ব্যবহৃত।
  • PUT: বিদ্যমান রিসোর্স আপডেট করতে ব্যবহৃত।
  • DELETE: রিসোর্স ডিলিট করতে ব্যবহৃত।

স্টেটলেস (Stateless)

RESTful API-তে প্রতিটি রিকোয়েস্ট স্বতন্ত্র এবং সার্ভারের কোনো পূর্ববর্তী রিকোয়েস্টের স্টেট বা তথ্য ধরে রাখার প্রয়োজন হয় না। এটি API-কে সহজ, দ্রুত এবং স্কেলযোগ্য করে তোলে।

JSON এবং XML

RESTful API সাধারণত JSON বা XML ফরম্যাটে ডেটা পাঠায় এবং গ্রহণ করে। JSON অধিকাংশ ক্ষেত্রে ব্যবহৃত হয় কারণ এটি লাইটওয়েট এবং সহজ।


RESTful API ডিজাইনের প্রিন্সিপাল

রিসোর্স ভিত্তিক URL ডিজাইন

API-এর প্রতিটি রিসোর্সের জন্য একটি স্পষ্ট এবং অর্থপূর্ণ URL থাকতে হবে। উদাহরণস্বরূপ:

  • GET /students – সমস্ত শিক্ষার্থীর তালিকা।
  • GET /students/{id} – নির্দিষ্ট শিক্ষার্থীর তথ্য।
  • POST /students – নতুন শিক্ষার্থী যোগ করা।
  • PUT /students/{id} – বিদ্যমান শিক্ষার্থীর তথ্য আপডেট করা।
  • DELETE /students/{id} – নির্দিষ্ট শিক্ষার্থী ডিলিট করা।

HTTP মেথডের সঠিক ব্যবহার

প্রতিটি রিসোর্সের জন্য সঠিক HTTP মেথড ব্যবহার করতে হবে। উদাহরণ:

  • রিসোর্স রিট্রাইভের জন্য GET
  • নতুন রিসোর্স তৈরির জন্য POST
  • বিদ্যমান রিসোর্স আপডেটের জন্য PUT
  • রিসোর্স মুছে ফেলার জন্য DELETE

রেসপন্স কোড

API-তে সঠিক HTTP স্ট্যাটাস কোড ব্যবহার করতে হবে, যা রেসপন্সের অর্থ পরিষ্কারভাবে প্রকাশ করে:

  • 200 OK: সফল রিকোয়েস্ট।
  • 201 Created: নতুন রিসোর্স তৈরি হয়েছে।
  • 400 Bad Request: অনুপযুক্ত রিকোয়েস্ট।
  • 404 Not Found: রিসোর্স পাওয়া যায়নি।
  • 500 Internal Server Error: সার্ভারে কোনো সমস্যা হয়েছে।

প্যাগিনেশন, ফিল্টারিং এবং সোর্টিং

বড় ডেটাসেটের জন্য প্যাগিনেশন, ফিল্টারিং এবং সোর্টিং অপশন প্রদান করা উচিত। উদাহরণ:

  • /students?page=2&size=20 – প্যাগিনেশন।
  • /students?class=10 – ফিল্টারিং।
  • /students?sort=age – সোর্টিং।

HATEOAS (Hypermedia as the Engine of Application State)

RESTful API ডিজাইনে প্রতিটি রিসোর্সের সাথে লিংক সংযুক্ত করা উচিত, যা পরবর্তী একশন সম্পর্কে নির্দেশনা দেয়। উদাহরণ:

{
  "id": 1,
  "name": "John Doe",
  "links": [
    { "rel": "self", "href": "/students/1" },
    { "rel": "delete", "href": "/students/1" }
  ]
}

RESTful API ডিজাইনের স্টেপ-বাই-স্টেপ প্রক্রিয়া

রিসোর্স সনাক্তকরণ

প্রথমে অ্যাপ্লিকেশনের ডোমেইন মডেল বা মূল বিষয়বস্তু নির্ধারণ করুন। উদাহরণস্বরূপ, "Students", "Teachers", "Courses" ইত্যাদি।

API এন্ডপয়েন্ট ডিজাইন

প্রতিটি রিসোর্সের জন্য স্পষ্ট এবং সুনির্দিষ্ট এন্ডপয়েন্ট তৈরি করুন। উদাহরণ:

  • /students
  • /teachers
  • /courses

ডেটা ফরম্যাট নির্বাচন

JSON বা XML-এর মধ্যে যেকোনো একটি ব্যবহার করুন, তবে JSON বেশি জনপ্রিয়।

সিকিউরিটি এবং অটেনটিকেশন

API সুরক্ষিত করতে নিম্নলিখিত পদ্ধতি ব্যবহার করুন:

  • HTTPS: সমস্ত ডেটা এনক্রিপ্ট করে।
  • Authentication: Token-based Authentication (JWT, OAuth) ব্যবহার করুন।

ডকুমেন্টেশন

API ব্যবহারকারীদের জন্য বিস্তারিত ডকুমেন্টেশন তৈরি করুন, যেখানে এন্ডপয়েন্ট, HTTP মেথড, এবং উদাহরণ রেসপন্স উল্লেখ থাকবে।


RESTful API ডিজাইনের বেস্ট প্র্যাকটিস

  • পরিষ্কার এবং সংক্ষিপ্ত URL ব্যবহার করুন।
  • সঠিক HTTP মেথড এবং স্ট্যাটাস কোড অনুসরণ করুন।
  • JSON পছন্দনীয়, কারণ এটি হালকা এবং সহজ।
  • Versioning সিস্টেম প্রয়োগ করুন (যেমন /v1/students)।
  • ডেটা ভ্যালিডেশন এবং এরর হ্যান্ডলিং নিশ্চিত করুন।
  • ক্যাশিং ব্যবহার করুন যেখানে প্রয়োজন।

সারমর্ম

RESTful API ডিজাইনের সময় একটি পরিষ্কার এবং স্কেলযোগ্য কাঠামো বজায় রাখা গুরুত্বপূর্ণ। সঠিক HTTP মেথড, অর্থপূর্ণ URL এবং ডেটা ফরম্যাট ব্যবহার API-কে কার্যকর এবং ব্যবহারকারীর জন্য সুবিধাজনক করে তোলে। RESTful API একটি দ্রুত, আধুনিক এবং ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরির জন্য অপরিহার্য।

common.content_added_by

API Controllers এবং Routing

272
272

ASP.Net MVC-তে API Controllers এবং Routing RESTful Web API তৈরি এবং পরিচালনার একটি গুরুত্বপূর্ণ অংশ। API Controller ডেটা বা রিসোর্স এক্সপোজ করে, এবং Routing নিশ্চিত করে যে এই API-তে সঠিক URL-এর মাধ্যমে অ্যাক্সেস পাওয়া যায়।


API Controllers

API Controller ASP.Net MVC-তে এমন একটি বিশেষ ধরনের Controller যা সাধারণত JSON বা XML ফরম্যাটে ডেটা রিটার্ন করে। এগুলো Web API-এর জন্য ব্যবহৃত হয় এবং ডেটা প্রক্রিয়াকরণ ও এক্সপোজ করতে সাহায্য করে।

API Controller তৈরি করা

API Controller তৈরি করতে Controller ক্লাসটি ApiController ক্লাস থেকে ইনহেরিট করতে হবে।

উদাহরণ: একটি সাধারণ API Controller

[Route("api/[controller]")]
[ApiController]
public class StudentsController : ControllerBase
{
    private readonly ApplicationDbContext _context;

    public StudentsController(ApplicationDbContext context)
    {
        _context = context;
    }

    // GET: api/Students
    [HttpGet]
    public IActionResult GetAllStudents()
    {
        var students = _context.Students.ToList();
        return Ok(students);
    }

    // GET: api/Students/5
    [HttpGet("{id}")]
    public IActionResult GetStudentById(int id)
    {
        var student = _context.Students.Find(id);
        if (student == null)
        {
            return NotFound();
        }
        return Ok(student);
    }

    // POST: api/Students
    [HttpPost]
    public IActionResult CreateStudent([FromBody] Student student)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        _context.Students.Add(student);
        _context.SaveChanges();
        return CreatedAtAction(nameof(GetStudentById), new { id = student.Id }, student);
    }

    // PUT: api/Students/5
    [HttpPut("{id}")]
    public IActionResult UpdateStudent(int id, [FromBody] Student student)
    {
        if (id != student.Id)
        {
            return BadRequest();
        }

        _context.Students.Update(student);
        _context.SaveChanges();
        return NoContent();
    }

    // DELETE: api/Students/5
    [HttpDelete("{id}")]
    public IActionResult DeleteStudent(int id)
    {
        var student = _context.Students.Find(id);
        if (student == null)
        {
            return NotFound();
        }

        _context.Students.Remove(student);
        _context.SaveChanges();
        return NoContent();
    }
}

Routing

Routing নিশ্চিত করে যে API-এর নির্দিষ্ট URL ডেটার সাথে সম্পর্কিত হয়। API Controllers এর ক্ষেত্রে Routing কনফিগার করতে Attribute Routing বেশি ব্যবহৃত হয়। এটি প্রতিটি অ্যাকশন মেথডের জন্য একটি নির্দিষ্ট URL বা Route নির্ধারণ করতে দেয়।

Attribute Routing

Attribute Routing API Controller-এ নির্ধারিত অ্যাকশন মেথডে সরাসরি Route অ্যাট্রিবিউট ব্যবহার করে।

উদাহরণ: Routing সংজ্ঞায়িত করা

[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
    [HttpGet]
    public IActionResult GetAllProducts()
    {
        // GET: api/Products
    }

    [HttpGet("{id}")]
    public IActionResult GetProductById(int id)
    {
        // GET: api/Products/5
    }

    [HttpPost]
    public IActionResult CreateProduct([FromBody] Product product)
    {
        // POST: api/Products
    }
}
  • [Route("api/[controller]")]: এখানে [controller] টোকেন ProductsController এর Products অংশকে URL-এ রূপান্তরিত করে।
  • [HttpGet("{id}")]: নির্দিষ্ট id সহ URL এর জন্য অ্যাকশন মেথড নির্ধারণ করে।

Custom Routes

Custom Routes ব্যবহার করে API Controller-এ নির্দিষ্ট নামকরণের কনভেনশন যুক্ত করা যায়।

উদাহরণ: Custom Routing

[Route("api/v1/products")]
[ApiController]
public class ProductsController : ControllerBase
{
    [HttpGet("list")]
    public IActionResult GetProducts()
    {
        // GET: api/v1/products/list
    }

    [HttpGet("details/{id}")]
    public IActionResult GetProductDetails(int id)
    {
        // GET: api/v1/products/details/5
    }
}

Default Route কনফিগারেশন

ASP.Net MVC-তে Routing কনফিগারেশন Startup.cs ফাইলে MapControllers() ব্যবহার করে করা হয়।

উদাহরণ: Routing Middleware

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

Routing Best Practices

  • সংক্ষিপ্ত URL ব্যবহার করুন: URL ছোট এবং বোধগম্য হওয়া উচিত।
  • Versioning ব্যবহার করুন: API-এর বিভিন্ন সংস্করণের জন্য Route-এ v1, v2 ইত্যাদি যোগ করুন।
  • Resource-Based Routes: Route-এ ক্রিয়ার পরিবর্তে রিসোর্স নাম অন্তর্ভুক্ত করুন।
    • যেমন: /api/students (ভুল: /api/getstudents)।

API Controllers এবং Routing এর সুবিধা

  • সহজ ডেটা এক্সপোজার: JSON বা XML আকারে ডেটা সহজে রিটার্ন করা যায়।
  • Flexible Routing: Attribute Routing-এর মাধ্যমে ডাইনামিক এবং কাস্টম URL তৈরি করা যায়।
  • RESTful API: RESTful নীতিমালা অনুসারে ক্লিন এবং কার্যকর API ডিজাইন করা যায়।
  • Versioning Support: API-এর ভিন্ন সংস্করণ তৈরি ও পরিচালনা করা সহজ।

সারমর্ম

ASP.Net MVC-তে API Controllers এবং Routing ওয়েব API তৈরি এবং পরিচালনার একটি গুরুত্বপূর্ণ অংশ। API Controller ডেটা প্রসেসিং এবং রিসোর্স এক্সপোজ করতে সহায়ক, এবং Routing নির্দিষ্ট URL-এর মাধ্যমে API অ্যাক্সেস নিশ্চিত করে। Attribute Routing এবং Middleware-এর মাধ্যমে API Routing আরও কার্যকর এবং ডেভেলপারদের জন্য সহজ হয়ে ওঠে।

common.content_added_by

JSON এবং XML রেসপন্স

187
187

ASP.Net MVC এবং Web API-তে JSON এবং XML রেসপন্স ব্যবহার করে ডেটা প্রেরণ এবং গ্রহণ করা হয়। এগুলো হলো ডেটা এক্সচেঞ্জের দুটি প্রচলিত ফরম্যাট। JSON (JavaScript Object Notation) হালকা এবং দ্রুত, যেখানে XML (Extensible Markup Language) কাঠামোগত এবং নমনীয় ডেটা ফরম্যাট প্রদান করে।


JSON রেসপন্স

JSON হল একটি হালকা ওজনের ডেটা ফরম্যাট যা সাধারণত ফ্রন্ট-এন্ড অ্যাপ্লিকেশনে ব্যবহৃত হয়। এটি JavaScript ফরম্যাটে ডেটা স্ট্রাকচার সংজ্ঞায়িত করে এবং সহজে ডেটা প্রক্রিয়াকরণ করতে পারে।

JSON রেসপন্স তৈরি করা

ASP.Net MVC-তে JSON রেসপন্স ফেরত দিতে JsonResult ব্যবহার করা হয়।

[HttpGet]
public JsonResult GetStudent()
{
    var student = new
    {
        Id = 1,
        Name = "Rahim",
        Age = 20,
        Class = "10"
    };

    return Json(student);
}

রেসপন্স আউটপুট

{
    "Id": 1,
    "Name": "Rahim",
    "Age": 20,
    "Class": "10"
}

JSON রেসপন্সের সুবিধা

  • দ্রুত এবং হালকা।
  • JavaScript এবং ফ্রন্ট-এন্ড ফ্রেমওয়ার্কে সহজে প্রোসেস করা যায়।
  • RESTful API-তে সবচেয়ে জনপ্রিয় ফরম্যাট।

XML রেসপন্স

XML একটি কাঠামোগত ফরম্যাট যা ডেটাকে ট্যাগ আকারে উপস্থাপন করে। এটি সাধারণত বেশি কাঠামোগত এবং ক্রস-প্ল্যাটফর্ম ডেটা ট্রান্সফার জন্য ব্যবহৃত হয়।

XML রেসপন্স তৈরি করা

ASP.Net Web API-তে XML রেসপন্স প্রদান করতে XmlSerializer ব্যবহার করা হয়।

[HttpGet]
[Produces("application/xml")]
public IActionResult GetStudentXml()
{
    var student = new
    {
        Id = 1,
        Name = "Karim",
        Age = 20,
        Class = "10"
    };

    return Ok(student);
}

রেসপন্স আউটপুট

<Student>
    <Id>1</Id>
    <Name>Karim</Name>
    <Age>20</Age>
    <Class>10</Class>
</Student>

XML রেসপন্সের সুবিধা

  • জটিল ডেটার জন্য আদর্শ।
  • স্ব-নথিকৃত (self-descriptive), কারণ এটি ট্যাগ ব্যবহার করে।
  • ক্রস-প্ল্যাটফর্ম এবং ভিন্ন সিস্টেমের মধ্যে সহজে এক্সচেঞ্জযোগ্য।

JSON এবং XML রেসপন্স কনফিগার করা

ASP.Net Web API-তে JSON এবং XML রেসপন্স কনফিগার করার জন্য Startup.cs ফাইলের AddControllers সেকশনে Media Formatter যোগ করতে হবে।

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers()
        .AddNewtonsoftJson()
        .AddXmlSerializerFormatters();
}

JSON বা XML রেসপন্স নির্ধারণ

ক্লায়েন্ট রিকোয়েস্টের Accept হেডার ব্যবহার করে JSON বা XML রেসপন্স নির্ধারণ করতে পারে।

উদাহরণ:

  1. JSON রেসপন্সের জন্য:

    GET /api/students HTTP/1.1
    Accept: application/json
    
  2. XML রেসপন্সের জন্য:

    GET /api/students HTTP/1.1
    Accept: application/xml
    

JSON এবং XML রেসপন্সের তুলনা

বৈশিষ্ট্যJSONXML
গঠন (Structure)Key-value পেয়ারট্যাগভিত্তিক
পাঠযোগ্যতামানুষের জন্য সহজপাঠ্যতুলনামূলক জটিল
গতি (Speed)দ্রুত এবং হালকাতুলনামূলক ধীর
ব্যবহারিক ক্ষেত্রRESTful API, ফ্রন্ট-এন্ড ফ্রেমওয়ার্কজটিল ডেটা এবং ক্রস-প্ল্যাটফর্ম সমাধান

সারমর্ম

JSON এবং XML উভয়ই ডেটা এক্সচেঞ্জের জন্য গুরুত্বপূর্ণ। JSON হালকা, দ্রুত এবং ফ্রন্ট-এন্ড অ্যাপ্লিকেশনে বেশি ব্যবহৃত হয়, যেখানে XML কাঠামোগত এবং জটিল ডেটা পরিচালনার জন্য উপযুক্ত। ASP.Net MVC এবং Web API উভয় ফরম্যাট সমর্থন করে, এবং প্রয়োজন অনুযায়ী JSON বা XML রেসপন্স কনফিগার করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion